import Main from '@/components/main'
import parentView from '@/components/parent-view'

/**
 * iview-admin中meta除了原生参数外可配置的参数:
 * meta: {
 *  title: { String|Number|Function }
 *         显示在侧边栏、面包屑和标签栏的文字
 *         使用'{{ 多语言字段 }}'形式结合多语言使用，例子看多语言的路由配置;
 *         可以传入一个回调函数，参数是当前路由对象，例子看动态路由和带参路由
 *  hideInBread: (false) 设为true后此级路由将不会出现在面包屑中，示例看QQ群路由配置
 *  hideInMenu: (false) 设为true后在左侧菜单不会显示该页面选项
 *  notCache: (false) 设为true后页面在切换标签后不会缓存，如果需要缓存，无需设置这个字段，而且需要设置页面组件name属性和路由配置的name一致
 *  access: (null) 可访问该页面的权限数组，当前路由设置的权限会影响子路由
 *  icon: (-) 该页面在左侧菜单、面包屑和标签导航处显示的图标，如果是自定义图标，需要在图标名称前加下划线'_'
 *  beforeCloseName: (-) 设置该字段，则在关闭当前tab页时会去'@/router/before-close.js'里寻找该字段名对应的方法，作为关闭前的钩子函数
 * }
 */

export default [
  //************************** 公共菜单栏 **************************
  {
    path: '/login',
    name: 'login',
    meta: {
      title: 'Login - 登录',
      hideInMenu: true
    },
    component: () => import('@/view/login/login.vue')
  },
  {
    path: '/',
    name: '_home',
    redirect: '/home',
    component: Main,
    meta: {
      hideInMenu: true,
      notCache: true
    },
    children: [
      {
        path: '/home',
        name: 'home',
        meta: {
          hideInMenu: true,
          title: '首页',
          notCache: true,
          icon: 'md-home'
        },
        component: () => import('@/view/single-page/home')
      }
    ]
  },
  {
    path: '/message',
    name: 'message',
    component: Main,
    meta: {
      hideInBread: true,
      hideInMenu: true
    },
    children: [
      {
        path: 'message_page',
        name: 'message_page',
        meta: {
          icon: 'md-notifications',
          title: '消息中心'
        },
        component: () => import('@/view/single-page/message/index.vue')
      }
    ]
  },
  {
    path: '/error_logger',
    name: 'error_logger',
    meta: {
      hideInBread: true,
      hideInMenu: true
    },
    component: Main,
    children: [
      {
        path: 'error_logger_page',
        name: 'error_logger_page',
        meta: {
          icon: 'ios-bug',
          title: '错误收集'
        },
        component: () => import('@/view/single-page/error-logger.vue')
      }
    ]
  },
  {
    path: '/argu',
    name: 'argu',
    meta: {
      hideInMenu: true
    },
    component: Main,
    children: [
      {
        path: 'params/:id',
        name: 'params',
        meta: {
          icon: 'md-flower',
          title: route => `{{ params }}-${route.params.id}`,
          notCache: true,
          beforeCloseName: 'before_close_normal'
        },
        component: () => import('@/view/argu-page/params.vue')
      },
      {
        path: 'query',
        name: 'query',
        meta: {
          icon: 'md-flower',
          title: route => `{{ query }}-${route.query.id}`,
          notCache: true
        },
        component: () => import('@/view/argu-page/query.vue')
      }
    ]
  },
  {
    path: '/401',
    name: 'error_401',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/error-page/401.vue')
  },
  {
    path: '/500',
    name: 'error_500',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/error-page/500.vue')
  },
  {
    path: '*',
    name: 'error_404',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/error-page/404.vue')
  },
  //************************** 系统菜单栏 **************************
  {
    path: '/system',
    name: 'system',
    meta: {
      icon: 'ios-settings',
      title: 'system',
      type: "sys"
    },
    component: Main,
    children: [
      {
        path: '/usermgt',
        name: 'usermgt',
        meta: {
          icon: 'md-people',
          title: 'usermgt',
          type: "sys"
        },
        component: () => import('@/view/components/system/usermgt/usermgt.vue')
      },
      {
        path: '/rolemgt',
        name: 'rolemgt',
        meta: {
          icon: 'logo-freebsd-devil',
          title: 'rolemgt',
          type: "sys"
        },
        component: () => import('@/view/components/system/rolemgt/rolemgt.vue')
      },
      {
        path: '/menumgt',
        name: 'menumgt',
        meta: {
          icon: 'ios-list-box-outline',
          title: 'menumgt',
          type: "sys"
        },
        component: () => import('@/view/components/system/menumgt/menumgt.vue')
      },
      {
        path: '/deptmgt',
        name: 'deptmgt',
        meta: {
          icon: 'ios-people',
          title: 'deptmgt',
          type: "sys"
        },
        component: () => import('@/view/components/system/deptmgt/deptmgt.vue')
      }
    ]
  },
  {
    path: '/base',
    name: 'base',
    meta: {
      icon: 'logo-buffer',
      title: 'base',
      type: "sys"
    },
    component: Main,
    children: [
    ]
  },


  //************************** 左边菜单-系统 **************************
  {
    path: "/report",
    name: "report",
    meta: {
      icon: "md-reorder",
      title: "report",
      type: "form"
    },
    component: Main,
    children: [
      {
        path: '/awbreport',
        name: 'awbreport',
        meta: {
          icon: 'ios-reorder',
          title: 'awbreport',
          type: "form"
        },
        component: () => import('@/view/multilevel/level-2-1.vue')
      },
      {
        path: '/uldreport',
        name: 'uldreport',
        meta: {
          icon: 'ios-restaurant',
          title: 'uldreport',
          type: "form"
        },
        component: () => import('@/view/multilevel/level-2-1.vue')
      },
      {
        path: '/flightreport',
        name: 'flightreport',
        meta: {
          icon: 'md-send',
          title: 'flightreport',
          type: "form"
        },
        component: () => import('@/view/multilevel/level-2-1.vue')
      },
      {
        path: '/areareport',
        name: 'areareport',
        meta: {
          icon: 'md-rewind',
          title: 'areareport',
          type: "form"
        },
        component: () => import('@/view/multilevel/level-2-1.vue')
      },
    ]
  },
  //************************** 中间菜单-表单 **************************
  {
    path: '/multilevel',
    name: 'multilevel',
    meta: {
      icon: 'md-menu',
      title: '多级菜单',
      type: "form"
    },
    component: Main,
    children: [
      {
        path: 'level_2_1',
        name: 'level_2_1',
        meta: {
          icon: 'md-funnel',
          title: '二级-1',
          type: "form"
        },
        component: () => import('@/view/multilevel/level-2-1.vue')
      },
      {
        path: 'level_2_2',
        name: 'level_2_2',
        meta: {
          access: ['super_admin'],
          icon: 'md-funnel',
          showAlways: true,
          title: '二级-2',
          type: "form"
        },
        component: parentView,
        children: [
          {
            path: 'level_2_2_1',
            name: 'level_2_2_1',
            meta: {
              icon: 'md-funnel',
              title: '三级',
              type: "form"
            },
            component: () => import('@/view/multilevel/level-2-2/level-2-2-1.vue')
          },
          {
            path: 'level_2_2_2',
            name: 'level_2_2_2',
            meta: {
              icon: 'md-funnel',
              title: '三级',
              type: "form"
            },
            component: () => import('@/view/multilevel/level-2-2/level-2-2-2.vue')
          }
        ]
      },
      {
        path: 'level_2_3',
        name: 'level_2_3',
        meta: {
          icon: 'md-funnel',
          title: '二级-3',
          type: "form"
        },
        component: () => import('@/view/multilevel/level-2-3.vue')
      }
    ]
  },
  //************************** 右边菜单-日志 **************************
  {
    path: "/log",
    name: "log",
    meta: {
      icon: "ios-rose",
      title: "日志中心",
      type: "log"
    },
    component: Main,
    children: [
      {
        path: '/weblog',
        name: 'weblog',
        meta: {
          icon: 'md-funnel',
          title: 'weblog',
          type: "log"
        },
        component: () => import('@/view/multilevel/level-2-1.vue')
      },
      {
        path: '/backendlog',
        name: 'backendlog',
        meta: {
          icon: 'md-funnel',
          title: '后端日志',
          type: "log"
        },
        component: () => import('@/view/multilevel/level-2-1.vue')
      },
      {
        path: '/boardlog',
        name: 'boardlog',
        meta: {
          icon: 'md-funnel',
          title: '打板周期统计',
          type: "log"
        },
        component: () => import('@/view/multilevel/level-2-1.vue')
      },
      {
        path: '/arrivelog',
        name: 'arrivelog',
        meta: {
          icon: 'md-funnel',
          title: '到货日志',
          type: "log"
        },
        component: () => import('@/view/multilevel/level-2-1.vue'),
        children: [
          {
            path: '/awblog',
            name: 'awblog',
            meta: {
              icon: 'md-funnel',
              title: '运单日志',
              type: "log"
            },
            component: () => import('@/view/multilevel/level-2-1.vue'),
          },
          {
            path: '/cargolog',
            name: 'cargolog',
            meta: {
              icon: 'md-funnel',
              title: '车辆过卡日志',
              type: "log"
            },
            component: () => import('@/view/multilevel/level-2-1.vue'),
          },
          {
            path: '/unloadlog',
            name: 'unloadlog',
            meta: {
              icon: 'md-funnel',
              title: '卸货日志',
              type: "log"
            },
            component: () => import('@/view/multilevel/level-2-1.vue'),
          }
        ]
      },
    ]
  },
]
